package cn.com.anypay.manager.service;

/**
 * 重定向验证服务
 * 用于验证重定向URL的安全性
 */
public interface RedirectValidationService {

    /**
     * 验证重定向URL是否安全
     *
     * @param url 待验证的URL
     * @return 是否为安全的重定向URL
     */
    boolean isValidRedirectUrl(String url);

    /**
     * 验证重定向URL是否安全，并返回详细信息
     *
     * @param url 待验证的URL
     * @return 验证结果
     */
    ValidationResult validateRedirectUrl(String url);

    /**
     * 验证结果类
     */
    class ValidationResult {
        private final boolean valid;
        private final String reason;

        public ValidationResult(boolean valid, String reason) {
            this.valid = valid;
            this.reason = reason;
        }

        public boolean isValid() {
            return valid;
        }

        public String getReason() {
            return reason;
        }

        public static ValidationResult valid() {
            return new ValidationResult(true, null);
        }

        public static ValidationResult invalid(String reason) {
            return new ValidationResult(false, reason);
        }
    }
}